package com.vehiclemanagement.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vehiclemanagement.entity.FuelCard;

import java.util.List;

/**
 * 加油卡服务接口
 */
public interface FuelCardService extends IService<FuelCard> {
    
    /**
     * 分页查询加油卡信息
     * 
     * @param current 当前页
     * @param size 每页大小
     * @param searchTerm 搜索条件
     * @param status 状态
     * @param includeDeleted 是否包含已删除（保留参数兼容旧代码，但实际使用物理删除）
     * @return 分页数据
     */
    IPage<FuelCard> pageFuelCards(Integer current, Integer size, String searchTerm, String status, Boolean includeDeleted);
    
    /**
     * 根据ID获取加油卡信息
     * 
     * @param id 加油卡ID
     * @return 加油卡信息
     */
    FuelCard getFuelCardById(Long id);
    
    /**
     * 检查卡号是否已存在
     * 
     * @param cardNumber 卡号
     * @return 是否存在
     */
    boolean existsActiveCardWithNumber(String cardNumber);
    
    /**
     * 添加加油卡
     * 
     * @param fuelCard 加油卡信息
     * @return 是否成功
     */
    boolean addFuelCard(FuelCard fuelCard);
    
    /**
     * 更新加油卡
     * 
     * @param fuelCard 加油卡信息
     * @return 是否成功
     */
    boolean updateFuelCard(FuelCard fuelCard);
    
    /**
     * 删除加油卡
     * 
     * @param id 加油卡ID
     * @return 是否成功
     */
    boolean deleteFuelCard(Long id);
    
    /**
     * 获取所有卡类型列表
     * 
     * @return 类型列表
     */
    List<String> getCardTypes();
} 